package cn.iocoder.yudao.module.resource.controller.admin.message.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 对话新增/修改 Request VO")
@Data
public class MessageSaveReqVO {

    @Schema(description = "唯一自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23536")
    private Long messageId;

    @Schema(description = "会话id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17101")
    @NotNull(message = "会话id不能为空")
    private Long sessionId;

    @Schema(description = "消息来源", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "消息来源不能为空")
    private Integer senderType;

    @Schema(description = "消息内容", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "消息内容不能为空")
    private String content;

    @Schema(description = "消息类型, 1: 文本/音频, 2: 图片, 3: 视频", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "消息类型, 1: 文本/音频, 2: 图片, 3: 视频不能为空")
    private Integer contentType;

    @Schema(description = "音频地址")
    private String audioPath;

    @Schema(description = "AI生成回复的时间 (毫秒)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "AI生成回复的时间 (毫秒)不能为空")
    private Integer responseTimeMs;

    @Schema(description = "扩展")
    private String extension;

}